package com.mephi.oshs.view.api;

import com.mephi.oshs.model.interpreter.api.IContext;
import com.mephi.oshs.model.interpreter.api.IExpression;
import com.mephi.oshs.view.elements.IClickable;

/**
 * Данное представление отвечает за отображение меню поиска.
 */
public interface ISearchView extends IView {

    /**
     * Уникальный идентификатор.
     */
    public static final ViewId ID = ViewId.SEARCH_VIEW;

    /**
     * Получить элемент инициализирующий поиск по дереву ОШС.
     *
     * @return Активатор быстрого поиска.
     */
    public IClickable getExpressionSearchAction();

    /**
     * Получить поисковое выражение.
     *
     * @return Выражение.
     */
    public IExpression getSearchExpression();

    /**
     * Получить поисковый контекст.
     *
     * @return Контекст.
     */
    public IContext getSearchContext();

    /**
     * Получить поисковый ключ-объект.
     *
     * @return Ключ-объект.
     */
    public Object getObjectKey();
}
